'''EXERCICE 1 (10 points) Écrire une fonction ajoute_dictionnaires qui prend en paramètres deux diction- naires d1 et d2 dont les clés sont des nombres et renvoie le dictionnaire d défini de la façon suivante : • les clés de d sont celles de d1 et celles de d2 réunies ; • si une clé est présente dans les deux dictionnaires d1 et d2, sa valeur associée dans le dictionnaire d est la somme de ses valeurs dans les dictionnaires d1 et d2 ; d[1] = d2[1] + d1[] • si une clé n’est présente que dans un des deux dictionnaires, sa valeur associée dans le dictionnaire d est la même que sa valeur dans le dictionnaire où elle est présente. Exemples : >>> ajoute_dictionnaires({1: 5, 2: 7}, {2: 9, 3: 11}) {1: 5, 2: 16, 3: 11} >>> ajoute_dictionnaires({}, {2: 9, 3: 11}) {2: 9, 3: 11} >>> ajoute_dictionnaires({1: 5, 2: 7}, {}) {1: 5, 2: 7}''' def ajoute_dictionnaires(d1, d2): d = {} for cle in d1: d[cle] = d1[cle] for cle in d2: if cle in d: d[cle] += d2[cle] else: d[cle] = d2[cle] return d print(ajoute_dictionnaires({1: 5, 2: 7}, {2: 9, 3: 11}) == {1: 5, 2: 16, 3: 11}) def moyenne(coeff,notes): somme_coeff = 0 somme_notes = 0 for i in range(coeff): somme_coeff += coeff[i] for i in range(notes): somme_notes += notes[i] return somme_notes/somme_coeff from os import * from random import randint """🔹 Partie 1 – Classe Personnage Créer une classe Personnage avec : Attributs nom (str) points_de_vie (int) attaque (int) Méthodes attaquer(adversaire) → enlève attaque points de vie à l’adversaire est_vivant() → retourne True si les points de vie sont strictement positifs __str__() → affiche le nom et les points de vie""" f_inf = float('inf') class Personnage: def __init__(self,nom,hp,att): self.nom = nom self.hp = hp self.att = att def attaquer(self,adversaire): adversaire.hp -= self.att return adversaire.hp def est_vivant(self): return self.hp > 0 def __str__(self): return f"{self.nom} - Points de vie : {self.hp}" def combat(P1,P2): print("BIENVENUE AU TENKASHI BUDOKAI\nAPPUYEZ SUR ENTREE POUR CONTINUER") tour = 0 input("Appuyez sur une touche pour commencer le combat.") while P1.hp > 0 or P2.hp > 0: tour += 1 print("Commencement du round n°",tour) if randint(0,1) == 0: print(P1.nom, " a décidé d'attaquer en premier !\n\nIl reste",P1.attaquer(P2)," HP à", P2.nom) input("Appuyez sur une touche pour continuer.") if randint(0,1) == 1: print(P2.nom, " a décidé d'attaquer en premier !\n\nIl reste",P2.attaquer(P1)," HP à", P1.nom) input("Appuyez sur une touche pour continuer.") print("------------------------------------ COMBAT -------------------------------------") mehdi = Personnage("Mehdi", f_inf, f_inf) anass = Personnage("Anass",1,1) input("Appuyez sur une touche pour commencer le combat.") print(anass.nom, " attaque ",mehdi.nom, ". Il reste ", anass.attaquer(mehdi), " PVs à ",mehdi.nom, "\n") input("Appuyez sur une touche pour continuer.") print("---------\nC'est le tour de Mehdi.") print("Il reste", mehdi.attaquer(anass), "PV à Anass.") input("Appuyez sur une touche pour continuer.") if mehdi.est_vivant(): print("Mehdi le goat est encore en vie.") else: print("Le combat est truqué") print("\n") if anass.est_vivant(): print("Le combat est truqué") else: print("Anass est mort.")